#define _CRT_SECURE_NO_WARNINGS
#include<iostream>
#include<vector>
#include<string>
#include<map>
#include<algorithm>
using namespace std;
//int main()
//{
//	int n;
//	while (~scanf("%d", &n))
//	{
//		if (n == 0)
//		{
//			cout << "Yes" << endl;
//			continue;
//		}
//		vector<int> v;
//		while (n)
//		{
//			v.push_back(n % 10);
//			n /= 10;
//		}
//		int tmp = 1;
//		int i = 0;
//		for (; i < v.size() - 1; i++)
//		{
//			if (v[i + 1] > v[i])
//			{
//				tmp = 0;
//				break;
//			}
//		}
//		if (tmp == 1)
//		{
//			cout << "Yes" << endl;
//		}
//		else
//		{
//			int flag = 1;
//			for (; i < v.size() - 1; i++)
//			{
//				if (v[i + 1] < v[i])
//				{
//					flag = 0;
//					break;
//				}
//			}
//			if (flag == 1)
//			{
//				cout << "Yes" << endl;
//			}
//			else
//			{
//				cout << "No" << endl;
//			}
//		}
//	}
//	return 0;
//}
int peakIndexInMountainArray(vector<int>& arr)
{
	int left = 0, right = arr.size() - 1;
	while (left < right)
	{
		int mid = left + (right - left+1) / 2;
		if (arr[mid] > arr[mid - 1])
		{
			left = mid;
		}
		else if (arr[mid] < arr[mid - 1])
		{
			right = mid-1;
		}
	}
	return left;
}
int findPeakElement(vector<int>& nums)
{
	int left = 0, right = nums.size() - 1;
	while (left < right)
	{
		int mid = left + (right - left) / 2;
		if (nums[mid] > nums[mid - 1])
		{
			left = mid;
		}
		else
		{
			right = mid - 1;
		}
	}
	return left;
}
int findMin(vector<int>& nums) 
{
	int left = 0, right = nums.size() - 1;
	while (left < right)
	{
		int mid = left + (right - left) / 2;
		if (nums[mid] > nums.back())
		{
			left = mid + 1;
		}
		else if (nums[mid] < nums.back())
		{
			right = mid - 1;
		}
	}
	return left;
}
int takeAttendance(vector<int>& records)
{
	int ret = 0;
	for (auto& e : records)
	{
		ret ^= e;
	}
	for (int i = 0; i <= records.size(); i++)
	{
		ret ^= i;
	}
	return ret;
}

int main()
{

	return 0;
}